.\" Copyright (c) 2007, SUSE LINUX Products GmbH
.\"                     Bernhard Walle <bwalle@suse.de>
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License
.\" as published by the Free Software Foundation; either version 2
.\" of the License, or (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
.\" 02110-1301, USA.
.\"
.TH RTCWAKE 8 "June 2015" "util-linux" "System Administration"
.SH NAME
rtcwake \- enter a system sleep state until specified wakeup time
.SH SYNOPSIS
.B rtcwake
[options]
.RB [ \-d
.IR device ]
.RB [ \-m
.IR standby_mode ]
.RB { "\-s \fIseconds\fP" | "\-t \fItime_t\fP" }
.SH DESCRIPTION
This program is used to enter a system sleep state and to automatically
wake from it at a specified time.
.PP
This uses cross-platform Linux interfaces to enter a system sleep state, and
leave it no later than a specified time.  It uses any RTC framework driver that
supports standard driver model wakeup flags.
.PP
This is normally used like the old \fBapmsleep\fP utility, to wake from a suspend
state like ACPI S1 (standby) or S3 (suspend-to-RAM).  Most platforms can
implement those without analogues of BIOS, APM, or ACPI.
.PP
On some systems, this can also be used like \fBnvram-wakeup\fP, waking from states
like ACPI S4 (suspend to disk).  Not all systems have persistent media that are
appropriate for such suspend modes.
.PP
Note that alarm functionality depends on hardware; not every RTC is able to setup
an alarm up to 24 hours in the future.
.PP
The suspend setup may be interrupted by active hardware; for example wireless USB
input devices that continue to send events for some fraction of a second after the
return key is pressed.
.B rtcwake
tries to avoid this problem and it waits to terminal to settle down before
entering a system sleep.

.SH OPTIONS
.TP
.BR \-A , " \-\-adjfile " \fIfile
Specify an alternative path to the adjust file.
.TP
.BR \-a , " \-\-auto"
Read the clock mode (whether the hardware clock is set to UTC or local time)
from the \fIadjtime\fP file, where
.BR hwclock (8)
stores that information.  This is the default.
.TP
.BR \-\-date " \fItimestamp"
Set the wakeup time to the value of the timestamp.  Format of the
timestamp can be any of the following:
.TS
tab(|);
l2 l.
YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm|(seconds will be set to 00)
YYYY-MM-DD|(time will be set to 00:00:00)
hh:mm:ss|(date will be set to today)
hh:mm|(date will be set to today, seconds to 00)
tomorrow|(time is set to 00:00:00)
+5min
.TE
.TP
.BR \-d , " \-\-device " \fIdevice
Use the specified \fIdevice\fP instead of \fBrtc0\fP as realtime clock.
This option is only relevant if your system has more than one RTC.
You may specify \fBrtc1\fP, \fBrtc2\fP, ... here.
.TP
.BR \-l , " \-\-local"
Assume that the hardware clock is set to local time, regardless of the
contents of the \fIadjtime\fP file.
.TP
.B \-\-list\-modes
List available \-\-mode option arguments.
.TP
.BR \-m , " \-\-mode " \fImode
Go into the given standby state.  Valid values for \fImode\fP are:
.RS
.TP
.B standby
ACPI state S1.  This state offers minimal, though real, power savings, while
providing a very low-latency transition back to a working system.  This is the
default mode.
.TP
.B freeze
The processes are frozen, all the devices are suspended and all the processors
idled.  This state is a general state that does not need any platform-specific
support, but it saves less power than Suspend-to-RAM, because the system is
still in a running state.  (Available since Linux 3.9.)
.TP
.B mem
ACPI state S3 (Suspend-to-RAM).  This state offers significant power savings as
everything in the system is put into a low-power state, except for memory,
which is placed in self-refresh mode to retain its contents.
.TP
.B disk
ACPI state S4 (Suspend-to-disk).  This state offers the greatest power savings,
and can be used even in the absence of low-level platform support for power
management.  This state operates similarly to Suspend-to-RAM, but includes a
final step of writing memory contents to disk.
.TP
.B off
ACPI state S5 (Poweroff).  This is done by calling '/sbin/shutdown'.
Not officially supported by ACPI, but it usually works.
.TP
.B no
Don't suspend, only set the RTC wakeup time.
.TP
.B on
Don't suspend, but read the RTC device until an alarm time appears.
This mode is useful for debugging.
.TP
.B disable
Disable a previously set alarm.
.TP
.B show
Print alarm information in format: "alarm: off|on  <time>".
The time is in ctime() output format, e.g., "alarm: on  Tue Nov 16 04:48:45 2010".
.RE
.TP
.BR \-n , " \-\-dry-run"
This option does everything apart from actually setting up the alarm,
suspending the system, or waiting for the alarm.
.TP
.BR \-s , " \-\-seconds " \fIseconds
Set the wakeup time to \fIseconds\fP in the future from now.
.TP
.BR \-t , " \-\-time " \fItime_t
Set the wakeup time to the absolute time \fItime_t\fP.  \fItime_t\fP
is the time in seconds since 1970-01-01, 00:00 UTC.  Use the
.BR date (1)
tool to convert between human-readable time and \fItime_t\fP.
.TP
.BR \-u , " \-\-utc"
Assume that the hardware clock is set to UTC (Universal Time Coordinated),
regardless of the contents of the \fIadjtime\fP file.
.TP
.BR \-v , " \-\-verbose"
Be verbose.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.SH NOTES
Some PC systems can't currently exit sleep states such as \fBmem\fP
using only the kernel code accessed by this driver.
They need help from userspace code to make the framebuffer work again.
.SH FILES
.I @ADJTIME_PATH@
.SH HISTORY
The program was posted several times on LKML and other lists
before appearing in kernel commit message for Linux 2.6 in the GIT
commit 87ac84f42a7a580d0dd72ae31d6a5eb4bfe04c6d.
.SH AUTHORS
The program was written by David Brownell <dbrownell@users.sourceforge.net>
and improved by Bernhard Walle <bwalle@suse.de>.
.SH COPYRIGHT
This is free software.  You may redistribute copies of it under the terms
of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
.SH "SEE ALSO"
.BR hwclock (8),
.BR date (1)
.SH AVAILABILITY
The rtcwake command is part of the util-linux package and is available from the
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
